System and method for automatically assisting a consumer with space design and furnishings selection

ABSTRACT

A system and method automatically assists a consumer with space design and furnishing selection. The method receives information from a client about a space to be designed, the information including dimension and desired use; applies floor plan design rules to generate a floor plan that satisfies the dimension and use information, the floor plan including an arrangement of furnishings; receives preference information such as color palette, period/genre, budget, etc. from the client for the space; searches a furnishings database for a furnishing combination that substantially matches the arrangement of furnishings of the floor plan and the preference information; and presents the furnishing combination to the client. Embodiments of the present invention enable the floor plan design and furnishing combination alternatives to be based on the skill and experience of professional designers.

BACKGROUND

1. Technical Field

This invention relates generally to interior and exterior design, and more particularly provides a system and method for automatically assisting a consumer with space design and furnishings selection.

2. Description of the Background Art

Interior designers assist clients with the selection and coordination of interior design furnishings, including furniture, floor treatments, wall treatments, countertop surfaces, etc. for commercial and/or residential interior spaces. Exterior designers (e.g., landscape architects and designers) typically assist consumers with the selection and coordination of exterior design furnishings, including yard surfaces, yard furniture, exterior lamps, ground coverings, etc. Furnishings may be selected from a single manufacturer or across several manufacturers, each manufacturer generally offering many different patterns, color schemes, styles, period/genres, etc. The designer generally coordinates the furnishings for a space based on aesthetic, functional and/or budgetary perspectives.

To select furnishings, a designer generally examines the space, discusses the functional, aesthetic and/or budgetary preferences and requirements with the client, and designs different floor plans and selects different furnishing combinations that may satisfy the conditions and constraints of the space and the client.

To assist in the design, the designer may scan sample books of furnishings or view furnishings offered by retail or wholesale establishments. The designer reduces the vast number of furnishings to a practical number of styles and patterns thought appropriate. The designer and client together narrow the remaining options to a practical few. A sample of each product or product type may be mounted on a foam-backed board, known as a “colorboard”, so that the client can view the proposed furnishings and the manner in which they coordinate in the particular space.

The client, with or without the assistance of the designer, selects and purchases desired furnishings. The purchased furnishings are positioned into the space in accordance with the design selected.

As with all products and services in this world, designers (whether interior or exterior) come with a fee. Many potential clients (whether renting or owning their homes) are either unwilling or unable to pay the costs accompanying a designer, although many of them still wish they could obtain (and really need) design assistance. Thus, systems and methods that enable clients to obtain the design services of a designer automatically, without hiring a designer and preferably with a reduced fee or no fee at all, would be useful.

SUMMARY

Embodiments of the present invention enable customers to obtain designer assistance with the interior and exterior design of spaces. One method in accordance with a first embodiment of the invention generates a floor plan, by receiving from a client information about a space to be designed, the information including dimension and desired use; and applying floor plan design rules to generate a floor plan that satisfies the dimension and use information, the floor plan including an arrangement of furnishings. The information about the space may include object location information. The floor plan design rules may include general designer guidelines. The client may modify the floor plan.

In accordance with another embodiment, the present invention provides a system for generating a floor plan, comprising a user interface for receiving from a client information about a space to be designed, the information including dimension and desired use; and a design engine coupled to the user interface for applying floor plan design rules to generate a floor plan that substantially satisfies the dimension and use information, the floor plan including an arrangement of furnishings.

In accordance with a further embodiment, the present invention provides a method of generating a floor plan design, comprising receiving from a client information about a space to be designed, the information including dimension and desired use; and reviewing floor plan design templates to identify a floor plan template that substantially satisfies the dimension and use information, each floor plan design template including an arrangement of furnishings. The reviewing of the floor plan design templates may include the step of identifying the floor plan design template that best satisfies the dimension and use information.

In yet another embodiment, the present invention provides a system for generating a floor plan design, comprising a user interface for receiving from a client information about a space to be designed, the information including dimension and desired use; and a design engine coupled to the user interface for reviewing floor plan design templates to identify a floor plan template that substantially satisfies the dimension and use information, each floor plan design template including an arrangement of furnishings.

In another embodiment, the present invention provides a method of generating a furnishing combination recommendation, comprising receiving a floor plan design including an arrangement of furnishings; receiving style information from a client; searching a furnishings database for a furnishing combination that substantially matches the arrangement of furnishings of the floor plan design and the style information; and presenting the furnishing combination to the client. The method may match the furnishings of the furnishings combination so that the furnishings coordinate according to their attributes. Alternatively, the method may match the furnishings of the furnishings combination so that the furnishings coordinate according to grouping information generated by a designer.

In another embodiment, the present invention provides a system for generating a furnishing combination recommendation, comprising a user interface for receiving style information from a client; and a design engine coupled to the user interface for searching a furnishings database for a furnishing combination that substantially matches an arrangement of furnishings of a floor plan design and the style information.

In another embodiment, the present invention provides a method, comprising receiving from a client information about a space to be designed, the information including dimension and desired use; applying floor plan design rules to generate a floor plan that satisfies the dimension and use information, the floor plan including an arrangement of furnishings; receiving style preference information from the client for the space; searching a furnishings database for a furnishing combination that substantially matches the arrangement of furnishings of the floor plan and the style information; and presenting the furnishing combination to the client.

In still another embodiment, the present invention provides a system, comprising a user interface for receiving from a client information about a space to be designed, the information including dimension information, desired use information and style preference information; a design engine coupled to the user interface to apply floor plan design rules to determine a floor plan that satisfies the dimension and use information, the floor plan including an arrangement of furnishings, and for searching a furnishings database for a furnishing combination that substantially matches the arrangement of furnishings of the floor plan and the style information.

An example story demonstrating the benefits of systems and methods in accordance with embodiments of the present invention and possible business processes is provided hereafter. Sarah and Rob have just moved to Northern California from Southern California on a job transfer. Although both are working, Sarah is pregnant and will probably stay home for a while after the baby is born. They just purchased a home and are looking to furnish it, since they brought only a few pieces with them from Southern California. Although they are not in a hurry to purchase everything at once, they are in a hurry to purchase furniture for their master bedroom and a comfortable family room sofa, chairs and coffee table.

Sarah notices an article in the home section of the San Jose Mercury News about a new furniture store which offers customers the opportunity to try different furnishing combinations online or in the store, all pre-designed by interior designers to match up to an individual's style preferences, color choices and budget. While Rob is out of town on business, Sarah has a free evening and heads over to the store. Although excited to see a large variety of furnishings that she would love to own, she is a bit overwhelmed. When the sales associate greets her, Sarah tells her that she is looking for a king bed, a couple night tables and family room furniture—but that she has no idea where to start.

The sales associate takes her to a comfortable stool by the kitchen bar and tells her to log on. The logon screen requests only her first and last name and an email address. Sarah is prompted for an optional password if she wants greater privacy (e.g., to keep others who know her name and email address from accessing her file). Regardless, Sarah's information is accessible to the store.

The system offers a design assistant link on the homepage. Sarah reads the brief description and clicks on the link. She is prompted to fill in five preferences: room type (e.g., dining room, child's bedroom, etc.), style preference (traditional, modern, etc.), color palette (warm colors, neutrals, etc.), budget (high, med, low) and existing pieces (items you already have, like your grandmother's dining table, indicating that you just need chairs and sideboard).

The system presents different furnishing combinations to Sarah. After playing with different furniture and fabric combinations, Sarah finds two combinations for each room that she likes. The sales associate shows her those available on the display floor, but has to show a similar bed to the one Sarah identified. Sarah asks the sales associate to bring out the color samples she tagged, along with the color print-out of the items and a description of each piece along with a price quote (proposal).

The furniture, fabric selections and price quotes are stored in Sarah's file so that she can show them to Rob when he gets back. After Sarah leaves the store with her packet of materials, the store has her email address and preference history. If Sarah does not come back in a few weeks, the store can email a list of new items made available that match her preferences, should they suit her needs better.

Three weeks later, both Sarah and Rob return to the store. Unfortunately, the original sales associate that assisted Sarah is off that day. However, another sales associate can easily pull up the file. The couple decides to buy a few items: a California King bed and mattress set, two night stands, a chest of drawers, a bench for their entry hall, a two-piece sectional sofa with extra down pillows and a large coffee table. Since Rob is not wild about the colors Sarah originally chose, they agree to different fabric choices. The purchased items and fabric/color choices are then entered into their file.

They make the purchases and are issued a line item receipt with estimated delivery dates. Once they leave the store, the orders are issued to the vendors. Each store SKU is tallied for access in reports, which indicate the more popular items, colors, vendors, etc. The sales associate tracks the progress of the order, stays in touch with the customers for any updates on delivery, delays, etc. and checks with the vendor to make sure the orders proceed as promised. The sales associate schedules the delivery and instructs the customer (via an email letter) to inspect the furniture upon delivery. The sales associate then sends a type written note via regular mail to thank the customer for the order and to make sure everything is in good working order.

To maintain an ongoing relationship, any new items that might coordinate well in the rooms with the known furnishings can be emailed to Sarah and Rob. Eighteen months later, Sarah and Rob return with their one-year-old child looking for baby furniture and a wall unit for the family room. A sales associate (whether the original or another) retrieves their file, and shows them product choices and fabric samples that match the furnishings purchased eighteen months earlier.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a network system, in accordance with an embodiment of the invention;

FIGS. 2A, 2B and 2C together illustrate an example table of a furnishing database, in accordance with an embodiment of the invention;

FIG. 3A is a block diagram illustrating details of the design assistant of FIG. 1, in accordance with an embodiment of the invention;

FIG. 3B is a block diagram illustrating details of the design engine of FIG. 3A, in accordance with an embodiment of the invention;

FIG. 4 is a block diagram illustrating a computer system in accordance with an embodiment of the present invention;

FIG. 5A illustrates a first example dynamic structured query set, in accordance with an embodiment of the present invention;

FIG. 5B illustrates a second example dynamic structured query set, in accordance with an embodiment of the present invention;

FIG. 6A illustrates a first example combination, in accordance with an embodiment of the present invention;

FIG. 6B illustrates a second example combination, in accordance with an embodiment of the present invention;

FIG. 7A is a flowchart illustrating a first method of building the furnishings database of FIG. 1, in accordance with a first embodiment of the present invention;

FIG. 7B illustrates a model of a furnishings database structure, in accordance with an embodiment of the present invention;

FIGS. 8A and 8B together form a flowchart illustrating a method of using a design assistant; in accordance with an embodiment of the present invention; and

FIGS. 9A and 9B together form a flowchart illustrating a method of searching a furnishings database, in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION

The following description is provided to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles, features and teachings disclosed herein.

FIG. 1 is a block diagram illustrating a network system 100, in accordance with an embodiment of the invention. Network system 100 includes one or more servers 105, one or more clients 110 and one or more vendors 115, each coupled together via a computer network 120. Although the server(s) 105, client(s) 110 and vendor(s) 115 are each shown as including more than one, one skilled in the art will recognize that the system 100 can operate with as few as a single client 110 and a single server 105, each possibly operating on the same computer without a computer network 120 (e.g., a standalone application). For convenience, the description below refers to each of these devices in the singular case and operating remotely as three separate devices. One skilled in the art will recognize that the computer network 120 may be a local area network (LAN) or a wide area network (WAN) such as the WAN commonly referred to as “the Internet.”

The server 105 includes a design assistant 125 and a furnishings database 130. The design assistant 125 receives room and preference information possibly from the client 110, and possibly in response to a series of questions posed by the design assistant 125 to the client 110. The design assistant 125 then uses the room and preference information, attribute information of various furnishings and/or designer guidelines to generate automatically a set of recommended floor plans, combinations of recommended furnishings, design and furnishing alternatives, etc. The design assistant 125 then enables the client 110 to modify the floor plans and/or furnishings combinations, to make selections, to purchase furnishings, etc. In one embodiment, the design assistant 125 automatically modifies (e.g., adjusts, narrows, adds, subtracts, etc.) the recommended floor plans, the recommended combinations of furnishings, the recommended styles and patterns, etc. based on selections made and/or preference information further indicated by the client 110. For example, if the client 110 indicates dissatisfaction of a particular item, e.g. a sofa, the design assistant 125 can discard all combinations with the item. The server 105 may be managed by a retail establishment, an interior designer, an exterior designer, a manufacturer, a wholesale establishment, a chain of stores, or other entity. The design assistant 125 will be described in greater detail with reference to FIG. 3.

For simplicity, the term “designer” is intended to include interior and/or exterior designers. The term “furnishings” or “products” is intended to include any design item, including furniture, floor treatments, wall treatments, countertop surfaces, yard surfaces, yard furniture, etc., whether intended for indoor or outdoor use, whether for commercial or residential spaces. The term “item”, “design item”, “piece”, “product” or “furnishing” is intended to include any single design item, e.g., an item of furniture, a floor treatment, a wall treatment, a countertop surface, a yard surface such as hardscape or softscape, a piece of yard furniture, etc. The terms “space”, “room” and “area” are all intended to cover the region intended for the new furnishings, whether indoor or outdoor, commercial or residential. The term “floor plan” is intended to include a recommended placement of furnishings, possibly including artwork location, wall treatments, etc.

In this embodiment, the furnishings database 130 is configured to store furnishings information, including attribute information (e.g., style, color, price, purpose, period/genre, content such as fabric content, dimensions, etc.) of a vast number of furnishings, and to store grouping information (e.g., indications whether certain furnishings coordinate per a designer for an aesthetic fit). The groupings information is preferably determined by a designer on a product-by-product, pattern-by-pattern, etc. basis and indicates whether certain design items coordinate well according to this designer. To determine whether certain furnishings coordinate well, the design assistant 125 can apply either the attribute information or the grouping information or both. The furnishings database 130 is shown and described below with reference to FIGS. 2A-2C.

Assuming that the client 110 wishes assistance with the interior design of a family room of certain dimensions and object (window, door, moldings, built-in cabinetry, etc.) locations, the design assistant 125 will search the furnishings database 130 for combinations in accordance with user-defined preferences (e.g., modern, inexpensive, bright colors, etc.). Based on its findings, the design assistant 125 will recommend certain combinations of furnishings, e.g., coffee tables, sofas, end tables, lamps, electronics centers, etc.

The client 110 includes a browser 135 or any software for communicating with the design assistant 125. In the case of a stand-alone application, the client software (i.e., the client 110) for communicating with the design assistant 125 is the stand-alone design assistant's user interface. The client 110 may be operated by an in-store sales associate, a user of a remote computer, an in-store customer, etc.

FIGS. 2A-2C together form an example furnishings database 130, in accordance with an embodiment of the present invention. Although the furnishings database 130 is shown as a table, one skilled in the art will recognize that other structures can be used to store the furnishings information. The furnishings database 130 includes design item identification information 202, attribute information 205 and grouping information 210. As can be seen by the column headings, the attribute information 205 includes product type, room type, period/genre, budget level, piece style, color palette, individual color, pattern/solid, pattern type, fabric content, fabric ratings, manufacturer identification, designer, dimensions, green level (i.e., an indication of the level of environmental soundness), individual price, design rating, and delivery schedule. The special selections 215 column indicates whether the item is a particularly preferred item of the designer, for example, is in high fashion, is likely to match a larger variety of furnishings, is just a favorite, etc. Other attribute information 205, such as alternative color options, alternative fabric options, etc., can also be stored. Further, the color columns may indicate a design item's base color, may indicate every color, may indicate the primary colors within the design, etc. The values for the various attributes of attribute information 205 may be defined by one or more designers or by the furnishing manufacturers. In this embodiment, the groupings information 210 is included in the last column of the furnishings database 130. The grouping information 210 is preferably defined by one or more experienced designers, identifying which design items coordinate well together.

For example, as can be seen from the example furnishings database 130, sofa A and area rug E are both recommended for family room use. (See the “room type” column.) However, sofa A is defined as a traditional type piece, and area rug E is defined as an eclectic type piece. (See the “period/genre” column.) Accordingly, although both are intended for the same interior space, these two design items likely do not coordinate well according to the attribute information 205. In one embodiment, the attributes of sofa A and area rug E can be compared to determine a coordination score (e.g., a percentage). This coordination score may be used to identify coordinating combinations and to organize the combination recommendations. As the furnishings database 130 reaches thousands of products, the attribute information 205 will likely have several combinations of design items deemed coordinating per the attribute information 205, or several design items deemed coordinating at a particular coordination score.

Now, referring to grouping information 210, sofa A and area rug E are identified as coordinating. (See the “groupings” column.) This essentially means that the designer subjectively believes that these two pieces coordinate well, regardless of the coordination score per the attribute information 205.

As stated above, the design assistant 125 may review attribute information 205 and/or groupings information 210 to determine coordinating products. That is, the design assistant 125 may analyze only one of attribute information 205 or groupings information 210, may examine both attribute information 205 and grouping information 210 to determine coordinating products, or may review both but offer combinations that satisfy either attribute information 205 or grouping information 210. The procedure for determining furnishing coordination may be set within the design assistant 125 or may be set and/or reset by the client 110 (if, for example, there are too many combinations possible). For example, the client 110 may request only combinations that score greater than 85% AND are deemed coordinating according to the grouping information 210. If only two combinations are identified, the user 110 may reduce his or her standards so that more alternatives are presented.

FIG. 3A is a block diagram illustrating details of the design assistant 125, in accordance with an embodiment of the present invention. The design assistant 125 includes a design engine 305, a user interface 310, a dynamic structured query set 315, a database manager 320, and a search engine 325. Access to the design assistant 125 may be presented to the client 110 via a link from a retail website or a website dedicated to the service, via a DVD ROM, etc.

In this embodiment, the design engine 305 includes the rules for...

(1) obtaining room information and user preferences;

(2) recommending use alternatives for a space;

(3) suggesting floor plans;

(4) selecting furnishing combinations;

(5) enabling substitutions;

(6) updating furnishing selections based on client activity.

(1) Obtaining User Requirements and Preferences

In this embodiment, the design engine 305 begins by obtaining room information and user preferences. An example module for performing this feature is the information-collecting module 330 of FIG. 3B. The information-collecting module 330 operates with a user interface 310 and a dynamic structured query set 315. The information-collecting module 330 retrieves the dynamic structured query set 315, which in this embodiment includes a series of questions to pose to the client 110. Two example dynamic structured query sets 315 are shown in FIGS. 5A and 5B. FIG. 5A illustrates a first example set of initial questions, namely, the preferred period/genre (e.g., eclectic, traditional), the preferred style (e.g., High Five's), the preferred room type (e.g., kitchen, family room), the preferred color palette (e.g., bold, neutral, warm), and the preferred budget (e.g., high, medium, low). FIG. 5B illustrates a second example set of initial questions, namely, a room type, a room size (e.g., small, medium, large or exact dimensions), a period/genre, a color palette, and a budget. FIG. 5B also offers the selection of single item searches as an alternative to the design of a space. The single item search may be implemented by enabling the client 110 to browse the furnishings database 130 or by making a single item recommendation in response to search queries, e.g., current floor plan, current furnishings, space available, style preferences, budget, etc. If in response to search queries,.the design engine 305 may determine the coordinating design items based on the same coordination principles as those for an entire space. One skilled in the art will recognize that the design engine 305 can assist the client 110 to find any number of pieces.

Questions indirectly related to the user preferences for the space may also be asked of the client 110. For example, the dynamic structured query set 315 may include questions regarding rooms already existing, functional uses desired, marital status, number and age of children, etc. By learning about the client 110, the information-collecting module 330 will be in a better position to offer alternative uses for a room (e.g., game room, workout room, formal dining room, etc.), to offer recommended materials, whether any artwork should be attached higher (so that children cannot reach it), to offer furnishing combinations, etc.

(2) Recommending Use Alternatives for a Space

After learning about the room dimensions and user preferences, the design engine 305 may offer the client 110 a set of alternatives uses for a space. An example module for performing this features is the room use recommendation module 335 of FIG. 3B. For example, if the room use recommendation module 335 learns that the client 305 is married, has no kids, has a living room, family room, bedroom, guest bedroom, and one interior space scheduled for interior design, the room use recommendation module 335 may offer the client 110 options such as a game room or formal dining room. Further, if the room is sufficiently large, the room use recommendation module 335 may recommend a combined game room and exercise room. The room use recommendation module 335 can implement rule sets that generate available options given the answers to certain input variables. Alternatively, the room use recommendation module 335 can offer the client 110 to select from a wide variety of alternative room uses, e.g., a list of all reasonable room uses. Based on the room size, the room use recommendation module 335 may indicate that the client 110 can select more than one use.

The room use recommendation module 335 can rate the possible uses of the space. That way, when the room use recommendation module 335 offers alternatives, it can offer them in order of room use score. Room use score can be based on rooms currently in the home, e.g., a second guest room may not rate as highly as an exercise room for a single active person. Room use score can be also based on room attributes, such as whether the size of the room meets certain standards for its selected purpose. For example, a room of 10′×8′ will likely be too tight for a master bedroom but may be ideal for a game room. Further, room use score can be based on general designer guidelines. One skilled in the art will recognize that room use scoring can be based on a vast number of variables.

It will be appreciated that the singular form of the term “use” as in “recommend a use for a space” is intended to include single and/or multiple use options. The term “single use” as in “recommend a single use for a space” is intended to include only single use options. Like many features of the present embodiment, the feature of recommending a room use is optional.

(3) Suggesting Floor Plans

After the client 110 indicates (e.g., selects) a room use, the design engine 305 suggests floor plans. An example module for performing this feature is the floor plan generator 340 of FIG. 3B. In a rules-based embodiment, the floor plan generator 340 begins by obtaining a list of general (typical) furnishings for the intended room use. For example, if the intended use for the space is a family room, the floor plan generator 340 will consider 1-2 sofas, 1-2 love seats, 1-2 chairs, 1-2 ottomans, 1-2 lamps, 1 television, 1 entertainment center, 2-3 end tables, 1-2 coffee tables, etc. Based on the information provided (e.g., room size, object locations, functional uses, etc.), the floor plan generator 340 will apply general designer guidelines, e.g., floor plans that maximize the use of space, do not impede ingress and egress, maximize natural light, do not impede objects, achieve the desired functional use, etc. The floor plan generator 340 will also prioritize the furnishings in the list of furnishings to determine which furnishing and how many of each furnishing can be included. For example, a small family room of about 18′×12′ will not be able to hold more than 1 sofa, one chair, 1 television, 2 end tables, and two lamps. However, a larger family room of about 25×30 will be able to hold more furnishings. Based on these guidelines, the floor plan generator 340 can rate the quality of each floor plan and accordingly may list the floor plan options in order of quality. Further, when determining the floor plan, the floor plan generator 340 may also select general dimension ranges for each of the design items.

In a template-based embodiment, the floor plan generator 340 may select from a predetermined set of floor plan templates to determine which of the floor plan templates work with the given space. The predetermined set of floor plan templates may be designed by a designer to incorporate various space dimensions, object locations including windows and doors, etc. The floor plan templates may be presented in a floor plan image gallery.

The floor plan generator 340 may enable the client 110 to modify a selected floor plan, e.g., by enabling the client 110 to increase the size of a table, remove an end table, move the sofa, etc. In a first embodiment, a modification of the floor plan itself or a modification of an attribute of a particular design item in the floor plan may affect the size, position, etc. of the other design items of the floor plan. This may be reflected in the 3D image provided to the user. In a different embodiment, the client 110 is allowed to make modifications despite the general designer guidelines (other design items may not change size, position, color, etc. Whether the floor plan changes automatically with client modifications of individual items and/or locations may be based on application preferences.

(4) Selecting Furnishing Combinations

After the client 110 selects a floor plan (i.e., an arrangement of design items), the design engine 305 determines furnishing combinations. An example module for performing this feature is the furnishing combination generator 345 of FIG. 3B. In coordination with the search engine 325, the furnishing combination generator 345 searches the furnishings database 130 in accordance with the room information and user preferences of the client 110. The furnishing combination generator 345 may review attribute information 205 and/or groupings information 210 to determine which design items needed to accomplish the floor plan selected in section (3) coordinate and to determine possibly their coordination scores. In one embodiment, if the client 110 in section (3) above selected a floor plan that calls for 1 sofa, 1 chair, 1 coffee table, 1 rug, 1 mirror and 1 lamp, the furnishing combination generator 345 may begin with a single item, e.g., the sofa. In this example, the furnishing combination generator 345 will search the attribute information 205 of the furnishings database 130 for all sofas that substantially match the floor plan and user preferences (period/genre, style, color palette, etc.). Then, based on grouping information 210 and/or on attribute information 205, the furnishing combination generator 345 generates possible furnishing combinations with each sofa. One such example of a recommended combination of design items is shown in FIG. 6A. FIG. 6A shows a fly sofa, a cinch chair, a Momo coffee table, a Farr area rug, a harlequin mirror, a floor lamp and 6 matching fabric choices.

The furnishing combination generator 345 may score furnishing combinations. After it is determined which pieces will be selected for a room, combinations of these pieces can be determined. Based on a comparison of the attributes of the combinations, the furnishing combination generator 345 can compute a coordination score (e.g., a percentage). This coordination score may be used to determine recommended combinations, and to order the combination recommendations. It will be appreciated that each attribute need not be of equal priority. For example, style may be deemed more important than fabric content. And, fabric content may be deemed more important than manufacturer name. The coordination score can be determined based on the matching values of each attribute and on each attribute's value.

(5) Enabling Substitutions

Each piece and/or attribute may be substituted for other pieces and/or attributes. An example module that enables this feature is the substitution module 350 of FIG. 3B. In one example, there may be 4 lamps that match a particular sofa. Accordingly, the furnishing combination generator 345 may recommend a first lamp, and the substitution module 350 may enable the client 110 to substitute any of the other 3 lamps for the first lamp. Alternatively, the substitution module 350 (in coordination with the furnishing combination generator 345) may determine that 2 of the 4 lamps do not match the coffee table that matches the sofa, and accordingly will offer only the 2 lamps as alternatives. Many other search and substitution permutations are possible. FIG. 6B illustrates a set of 6 coordinating fabric choices (attributes) from which the client 110 can select.

In a different embodiment, the substitution module 350 may enable the client 110 to select any alternative or from various alternatives, some of which may not coordinate well. At times, a client 110 may request a substitution for a design item that does not coordinate with other pieces, e.g., the client 110 may select a traditional lamp with a modern sofa. At times, a client 110 may modify an item such that it no longer coordinates with the given space, e.g., the client 110 may increase the height of a bookcase, which now will block a window. In one embodiment, the substitution module 350 may politely inform the user via the user interface 310 that such modification would not be recommended and may provide reasoning. In the case of the lamp, the substitution module 350 may inform the client 110 that the traditional lamp will detract from the modern feel of his home. In the case of the bookcase resizing, the substitution module 350 may inform the client 110 that the bookcase will block valuable light, will be unattractive from both the street and within the room, etc. In another embodiment, however, the substitution module 350 will allow the client 110 to make any substitution requested, regardless of coordination, since the customer is always right. Further, for convenience, the design engine 305 may retain discarded information for possible future use.

(6) Updating Furnishings Selections Based On Client Activity

As the client 110 makes selections and substitutions, the design engine 305 may update the available combinations and recommended substitutions. An example module for performing this feature is the results controller 355 of FIG. 3B. For example, if the client 110 selects a particular sofa, fabric and color, the results controller 355 may discard all design items that do not coordinate with this particular sofa, fabric and color. This technique would assist the client 110 by narrowing the scope of his search.

The database manager 320 enables the designer to add additional furnishings to the furnishings database 130, to modify or enter attribute information 205, to modify or enter grouping information 210, to remove furnishings from the furnishings database, etc.

FIG. 4 is a block diagram illustrating details of an example computer system 400, wherein each of client 110, server 125, and vendor 115 is an instance of computer system 400. Computer system 400 includes a processor 405, such as an Intel Pentium® microprocessor or a Motorola Power PC® microprocessor, coupled to a communications channel 455. The computer system 400 further includes an input device 410 such as a keyboard or mouse, an output device 415 such as a cathode ray tube display, a communications device 420, a data storage device 425 such as a magnetic disk, and memory 430 such as Random-Access Memory (RAM), each coupled to the communications channel 455. The communications interface 420 may be coupled to a network such as the wide-area network commonly referred to as the Internet. One skilled in the art will recognize that, although the data storage device 425 and memory 430 are illustrated as different units, the data storage device 425 and memory 430 can be parts of the same unit, distributed units, virtual memory, etc.

The data storage device 425 and/or memory 430 may store an operating system 435 such as the Microsoft Windows NT or Windows/95 Operating System (OS), the IBM OS/2 operating system, the MAC OS, or UNIX operating system and/or other programs 440. It will be appreciated that a preferred embodiment may also be implemented on platforms and operating systems other than those mentioned. An embodiment may be written using JAVA, C, and/or C++ language, or other programming languages, possibly using object oriented programming methodology.

One skilled in the art will recognize that the computer system 400 may also include additional information, such as network connections, additional memory, additional processors, LANs, input/output lines for transferring information across a hardware channel, the Internet or an intranet, etc. One skilled in the art will also recognize that the programs and data may be received by and stored in the system in alternative ways. For example, a computer-readable storage medium (CRSM) reader 445 such as a magnetic disk drive, hard disk drive, magneto-optical reader, CPU, etc. may be coupled to the communications bus 455 for reading a computer-readable storage medium (CRSM) 450 such as a magnetic disk, a hard disk, a magneto-optical disk, RAM, etc. Accordingly, the computer system 400 may receive programs and/or data via the CRSM reader 445. Further, it will be appreciated that the term “memory” herein is intended to cover all data storage media whether permanent or temporary.

FIG. 7A is a flowchart illustrating a method 700 of building the furnishings database 130. Method 700 begins in step 705 with the designer or alternatively a manufacturer identifying a product to be included in the furnishings database 130. The designer (or possibly the manufacturer) in step 710 determines the product attribute information 205 and/or groupings information 210. The designer, manufacturer or a data entry person via the user interface 310 in step 715 can enter the information into the furnishings database 130. Method 700 then ends.

FIG. 7B illustrates a structural model 700 of a furnishings database, e.g., furnishings database 130, in accordance with an embodiment of the present invention. The structural model 700 illustrates an example hierarchical relationship of attributes 205 and furnishings. The structural model 700 preferably maximizes efficiency of use and information filtering.

In this embodiment, furnishings database structure 700 divides products 720 into single products 725 and whole room products 730. Single products 725 are divided by product types 735 into upholstered products 740 and case products 745. Upholstered products 740 have attributes 205 for period/genre 750, budget class 755, and fabric options 760 divided into patterns 764 with pattern type 766 and solids 762. Both patterns and solids have a color 768, a style 770 and a size 772. Case products 745 have a period/genre 774, a budget class 776, a finish 778, a color 780, a style 770 and a size 772.

Further, in this embodiment, whole room products 730 have a room type 782 and a room size 784. The room size 784 may identify special selections 215 for floor plans and furnishing combinations 786. Whole room products 730 also have a period/genre 788, a budget class 790, and a color palette 792. The color palette 792 may be divided into solids 794, patterns 796 and a mixture 798 of solids and patterns. Of course, other structural models are also possible.

FIGS. 8A and 8B, together, form a flowchart illustrating a method 800 of using the design assistant 125 to assist a client 110 with the design of a space, in accordance with an embodiment of the present invention. Method 800 begins with the client in step 805 initiating the design assistant 125 application, e.g., by using the browser 135 to locate the design assistant 125 link on a website. The client 110 in step 810 responds to a set of questions regarding the customer's preferences, room requirements, etc. In step 815, the client 110 selects between possible modes of assistance, e.g., purchasing a single item or requesting assistance for the design of a room (possibly with pieces already). In single item mode, method 800 jumps to step 820 where the client 110 may browse furnishings of the desired type (not shown), or provide a current floor plan and information regarding the specific item desired, e.g., a chair in the living room already furnished substantially, to the design assistant 125. In room mode, method 800 jumps to step 825 where the design assistant 125 recommends certain floor plan options, e.g., based on information provided about the customer and the customer's space. Alternatively, although not shown, the client 110 may select from a set of floor plan template alternatives, as described above. In step 830, the client 110 indicates, e.g., selects, a floor plan (possibly via multiple iterations with the design assistant 125).

It will be appreciated that, if the client 110 already owns certain items and wants the design assistant 125 to assist with furnishing selection, pictures of the items may be uploaded to the design assistant 125. The pictures may be provided in a predetermined format, e.g., jpeg. The relevant items in the pictures may be identified by user input, by designer input, by intelligent software that recognizes items within the picture, etc. The relevant attributes of the items in the pictures may be determined by the designer, by the client, or by the software. It will be further appreciated that the design assistant 125 may not be able to learn or obtain all possible attributes 205 of the relevant items. For example, the design assistant 125 may only be able to capture automatically attributes 205 such as color, color palette, fabric, etc. It may not be able to capture attributes such as period/genre, budget, etc. The client and/or designer may have to input this information, if available. It will be appreciated that the desired item may then be compared against the uploaded item for coordination. A coordination determination will likely be implemented using the gathered attribute information 205, unless the existing piece is in the database and grouping information 210 for the item exist.

It will be further appreciated that, in single item mode, the floor plan need not be provided if the client 110 is merely going to browse the furnishings database 130. Further, in single item mode, the design assistant 125 may request other information from the client 110 (in addition to or instead of floor plan design) before offering furnishing recommendations. For example, the design assistant 125 may ask for furnishing type desired, approximate dimensions of furnishing desired, style desired, etc. or combinations of the same. It will be appreciated that, in one embodiment, when the client 110 wants the design assistant 125 to assist with floor plan design of a section of a room, the client 110 may choose room mode (inputting room objects and furnishings (possibly as other objects) that essentially cannot be moved).

Whether in single item or room mode, the method 800 then continues to step 840. The design assistant 125 in step 840 recommends furnishing or furnishing combinations based on the information provided. Furnishing recommendations may be implemented in the manner described with reference to FIG. 3. The client 110 in step 840 may make substitutions and in step 845 may store some, all or none of the selections.

The customer in step 850 decides to purchase some or all of the selections, and in step 855 decides on a mode to make the purchase. In this embodiment, method 800 allows the client 110 to make the purchase either in step 860 via an in-store purchase, in step 865 via an email sent to the client 110 with a “click-to-buy” link, or in step 870 via an online transaction via the design assistant 125. Although not indicated, one skilled in the art will recognize that the client 110 can jump to the step of purchasing an item at any time. Method 800 then ends.

FIGS. 9A and 9B, together, form a flowchart illustrating a method 900 of searching the furnishings database 130 for furnishing recommendations, in accordance with an embodiment of the present invention. Method 900 begins with the design engine 305 (via the search engine 325) in step 905 selecting a primary item type. In the case of single item mode (e.g., requesting a recommendation for only a sofa), the primary item type will be the same as the type of the single item (e.g., a sofa). In the case of room design mode, the primary item should be selected from the items needed to satisfy the floor plan. As the primary item, the design engine 305 may be configured to select the item generally most difficult to fit, the item generally most difficult to find, the item generally most important, the item most costly, the largest item, etc. For example, if the customer is designing a living room, the primary item type may be a sofa and not an end table. Alternatively, the client 110 can be prompted to select the primary item type. Although not shown, it will be appreciated that a client 110 can jump between single item mode and room mode, e.g., by selecting single item mode, selecting an item, and then requesting coordinating pieces. Other embodiments are certainly possible.

The design engine 305 in step 910 searches the furnishings database 130 for all primary items of the selected type that match the floor plan and customer's preferences. The design engine 305 will try at this time to satisfy all room requirements and all customer preferences, e.g., a sofa of XYZ dimensions, of traditional style, of a particular budget, of a neutral color palette, etc. In this embodiment, the design engine 305 in step 915 then determines whether there are a minimum number of matching items, e.g., at least one, in the furnishings database 130. If not, then the design engine 305 in step 920 removes one of the customer preferences (preferably, one of lesser importance, e.g., fabric content) and returns to step 910 to search the furnishings database 130 for all primary items matching the remaining preferences. One skilled in the art will recognize that alternative techniques can be used. For example, the design engine 305 can compare and score all items of the desired type, e.g., all sofas. Then, the design engine 305 may present only those achieving a particular score or may present only a specified number of those having the highest scores.

If the design engine 305 in step 915 determines that there is a minimum number of items in the resulting set of primary items located, then the design engine 305 in step 925 determines if there are any secondary items to search for. The term “secondary items” is being used to include all items of item types needed (in the room mode, per the floor plan) other than the primary item type. For example, if the customer needs a sofa, two end tables and a coffee table, then the design engine 305 may select the sofa as the primary item and the two end tables and coffee table as the secondary items. If not, then method 900 jumps to step 970 to save the combination results. Method 900 then ends. In another embodiment, the client 110 may pick a first item, e.g., a desired coffee table, and then select an option on the site to find coordinating pieces. The first item selected by the client 110 (namely, the coffee table) will be selected by the design assistant 125 as the primary item. The coordinating pieces will be the secondary items. In this embodiment, the method 900 will essentially start from step 925 to determine secondary items.

If the design engine 305 in step 925 determines that there are secondary items to search for, then the design engine 305 in step 930 selects one of the primary items, and in step 935 selects a secondary item type to search for and searches for all secondary items that coordinate with the primary item. It will be appreciated that this includes matching the secondary items to the floor plan, the customer preferences and the primary item selected. The secondary items may be prioritized so that they are selected in a particular order.

The design engine 305 in step 940 determines whether a minimum number of secondary items have been identified. Again, as stated above, coordination scoring techniques can additionally or alternatively employed. If not, then the design engine 305 in step 945 removes a matching requirement, e.g., one of the customer's preferences or one of the attributes of the primary item. The design engine 305 returns to step 935 to search for secondary items that match the remaining requirements.

If the design engine 305 finds a minimum number of secondary items that match the floor plan, the customer preferences and the primary item, then the design engine 305 in step 950 determines if there are any more secondary items to match. If so, then the design engine 305 in step 955 selects another secondary item type and returns to step 935 to search for any secondary items of this type that matches the floor plan, the customer preferences, the primary item selected and any secondary items selected. It will be appreciated that matching the secondary items to the primary item may be implemented by attribute information 205 comparison or by groupings information 210. This loop will continue until all secondary item combinations with this primary item are determined.

If the design engine 305 in step 950 determines that no more secondary items exist, then the design engine 305 in step 960 determines if there are any more primary items to coordinate with the secondary items. If so, then the design engine 305 in step 965 picks the next primary item and returns to step 935 to determine if there are any secondary items of each type that match the currently selected primary item. If the design engine 305 in step 960 determines that there are no more primary items to examine, then the design engine jumps to step 970 to store the combination results. Method 900 then ends.

For illustrative purposes, an example story demonstrating the benefits and possible business processes employing the systems and methods described above is provided hereafter. Sarah and Rob have just moved to Northern California from Southern California on a job transfer. Although both are working, Sarah is pregnant and will probably stay home for a while after the baby is born. They just purchased a home and are looking to furnish it, since they brought only a few pieces with them from Southern California. Although they are not in a hurry to purchase everything at once, they are in a hurry to purchase furniture for their master bedroom and a comfortable family room sofa, chairs and coffee table.

Sarah notices an article in the home section of the San Jose Mercury News about a new furniture store which offers customers the opportunity to try different furnishing combinations online or in the store, all pre-designed by interior designers to match up to an individual's style preferences, color choices and budget. While Rob is out of town on business, Sarah has a free evening and heads over to the store. Although excited to see a large variety of furnishings that she would love to own, she is a bit overwhelmed. When the sales associate greets her, Sarah tells her that she is looking for a king bed, a couple night tables and family room furniture—but that she has no idea where to start.

The sales associate takes her to a comfortable stool by the kitchen bar and tells her to log on. The logon screen requests only her first and last name and an email address. Sarah is prompted for an optional password if she wants greater privacy (e.g., to keep others who know her name and email address from accessing her file). Regardless, Sarah's information is accessible to the store.

The system offers a design assistant link on the homepage. Sarah reads the brief description and clicks on the link. She is prompted to fill in five preferences: room type (e.g., dining room, child's bedroom, etc.), style preference (traditional, modern, etc.), color palette (warm colors, neutrals, etc.), budget (high, med, low) and existing pieces (items you already have, like your grandmother's dining table, indicating that you just need chairs and sideboard).

The system presents different furnishing combinations to Sarah. After playing with different furniture and fabric combinations, Sarah finds two combinations for each room that she likes. The sales associate shows her those available on the display floor, but has to show a similar bed to the one Sarah identified. Sarah asks the sales associate to bring out the color samples she tagged, along with the color print-out of the items and a description of each piece along with a price quote (proposal).

The furniture, fabric selections and price quotes are stored in Sarah's file so that she can show them to Rob when he gets back. After Sarah leaves the store with her packet of materials, the store has her email address and preference history. If Sarah does not come back in a few weeks, the store can email a list of new items made available that match her preferences, should they suit her needs better.

Three weeks later, both Sarah and Rob return to the store. Unfortunately, the original sales associate that assisted Sarah is off that day. However, another sales associate can easily pull up the file. The couple decides to buy a few items: a California King bed and mattress set, two night stands, a chest of drawers, a bench for their entry hall, a two-piece sectional sofa with extra down pillows and a large coffee table. Since Rob is not wild about the colors Sarah originally chose, they agree to different fabric choices. The purchased items and fabric/color choices are then entered into their file.

They make the purchases and are issued a line item receipt with estimated delivery dates. Once they leave the store, the orders are issued to the vendors. Each store SKU is tallied for access in reports, which indicate the more popular items, colors, vendors, etc. The sales associate tracks the progress of the order, stays in touch with the customers for any updates on delivery, delays, etc. and checks with the vendor to make sure the orders proceed as promised. The sales associate schedules the delivery and instructs the customer (via an email letter) to inspect the furniture upon delivery. The sales associate then sends a type written note via regular mail to thank the customer for the order and to make sure everything is in good working order.

To maintain an ongoing relationship, any new items that might coordinate well in the rooms with the known furnishings can be emailed to Sarah and Rob. Eighteen months later, Sarah and Rob return with their one-year-old child looking for baby furniture and a wall unit for the family room. A sales associate (whether the original or another) retrieves their file, and shows them product choices and fabric samples that match the furnishings purchased eighteen months earlier.

The foregoing description of the preferred embodiments of the present invention is by way of example only, and other variations and modifications of the above-described embodiments and methods are possible in light of the foregoing teaching. Although the network sites are being described as separate and distinct sites, one skilled in the art will recognize that these sites may be a part of an integral site, may each include portions of multiple sites, or may include combinations of single and multiple sites. The various embodiments set forth herein may be implemented utilizing hardware, software, or any desired combination thereof. For that matter, any type of logic may be utilized which is capable of implementing the various functions set forth herein. Components may be implemented using a programmed general-purpose digital computer, using application specific integrated circuits, or using a network of interconnected conventional components and circuits. Connections may be wired, wireless, modem, etc. The embodiments described herein are not intended to be exhaustive or limiting. The present invention is limited only by the following claims. 

1. A method of generating a floor plan, comprising: receiving from a client information about a space to be designed, the information including dimension and desired use; and applying floor plan design rules to generate a floor plan that satisfies the dimension and use information, the floor plan including an arrangement of furnishings.
 2. The method of claim 1, wherein the information about a space includes object location information.
 3. The method of claim 1, wherein the floor plan design rules includes general designer guidelines.
 4. The method of claim 1, further comprising the step of enabling the client to modify the floor plan.
 5. A system for generating a floor plan, comprising: a user interface for receiving from a client information about a space to be designed, the information including dimension and desired use; and a design engine coupled to the user interface for applying floor plan design rules to generate a floor plan that substantially satisfies the dimension and use information, the floor plan including an arrangement of furnishings.
 6. The system of claim 5, wherein the information about a space includes object location information.
 7. The system of claim 5, wherein the floor plan design rules includes general designer guidelines.
 8. The system of claim 1, wherein the design engine enables the client to modify the floor plan.
 9. A system for generating a floor plan, comprising: means for receiving from a client information about a space to be designed, the information including dimension and desired use; and means for applying floor plan design rules to generate a floor plan that substantially satisfies the dimension and use information, the floor plan including an arrangement of furnishings.
 10. A method of generating a floor plan design, comprising: receiving from a client information about a space to be designed, the information including dimension and desired use; and reviewing floor plan design templates to identify a floor plan template that substantially satisfies the dimension and use information, each floor plan design template including an arrangement of furnishings.
 11. The method of claim 10, wherein the information includes object location information.
 12. The method of claim 10, wherein the step of reviewing includes applying general designer guidelines.
 13. The method of claim 10, further comprising the step of enabling the client to modify the identified floor plan design template.
 14. The method of claim 10, wherein the step of reviewing the floor plan design templates includes the step of identifying the floor plan design template that best satisfies the dimension and use information.
 15. A system for generating a floor plan design, comprising: a user interface for receiving from a client information about a space to be designed, the information including dimension and desired use; and a design engine coupled to the user interface for reviewing floor plan design templates to identify a floor plan template that substantially satisfies the dimension and use information, each floor plan design template including an arrangement of furnishings.
 16. The system of claim 15, wherein the information includes object location information.
 17. The system of claim 15, wherein the design engine applies general designer guidelines.
 18. The system of claim 15, wherein the design engine enables the client to modify the identified floor plan design template.
 19. The system of claim 15, wherein the step of reviewing the floor plan design templates includes the step of identifying the floor plan design template that best satisfies the dimension and use information.
 20. A system for generating a floor plan design, comprising: means for receiving from a client information about a space to be designed, the information including dimension and desired use; and means for reviewing floor plan design templates to identify a floor plan template that substantially satisfies the dimension and use information, each floor plan design template including an arrangement of furnishings.
 21. A method of generating a furnishing combination recommendation, comprising: receiving a floor plan design including an arrangement of furnishings; receiving style information from a client; searching a furnishings database for a furnishing combination that substantially matches the arrangement of furnishings of the floor plan design and the style information; and presenting the furnishing combination to the client.
 22. The method of claim 21, further comprising the step of matching the furnishings of the furnishings combination so that the furnishings coordinate according to their attributes.
 23. The method of claim 21, further comprising the step of matching the furnishings of the furnishings combination so that the furnishings coordinate according to grouping information generated by a designer.
 24. The method of claim 21, further comprising the step of enabling user modifications to the furnishing combination.
 25. A system for generating a furnishing combination recommendation, comprising: a user interface for receiving style information from a client; and a design engine coupled to the user interface for searching a furnishings database for a furnishing combination that substantially matches an arrangement of furnishings of a floor plan design and the style information.
 26. The system of claim 25, wherein the design engine matches the furnishings of the furnishings combination so that the furnishings coordinate according their to attributes.
 27. The system of claim 25, wherein the design engine matches the furnishings of the furnishings combination so that the furnishings coordinate according to grouping information generated by a designer.
 28. The system of claim 25, wherein the design engine enables user modifications to the furnishing combination.
 29. A system for generating a furnishing combination recommendation, comprising: means for receiving style information from a client; and means for searching a furnishings database for a furnishing combination that substantially matches an arrangement of furnishings of a floor plan design and the style information.
 30. A method, comprising: receiving from a client information about a space to be designed, the information including dimension and desired use; applying floor plan design rules to generate a floor plan that satisfies the dimension and use information, the floor plan including an arrangement of furnishings; receiving style preference information from the client for-the space; searching a furnishings database for a furnishing combination that substantially matches the arrangement of furnishings of the floor plan and the style information; and presenting the furnishing combination to the client.
 31. A system, comprising: a user interface for receiving from a client information about a space to be designed, the information including dimension information, desired use information and style preference information; a design engine coupled to the user interface to apply floor plan design rules to determine a floor plan that satisfies the dimension and use information, the floor plan including an arrangement of furnishings, and for searching a furnishings database for a furnishing combination that substantially matches the arrangement of furnishings of the floor plan and the style information. 